package com.example.androidframework.ui.main

import com.example.androidframework.ui.cart.CartFragment
import com.example.androidframework.ui.course.CourseFragment
import com.example.androidframework.ui.exchange.ExchangeFragment
import com.example.androidframework.ui.mall.MallFragment
import com.example.androidframework.ui.mine.MineFragment
import com.martin.lib_base.base.BaseViewModel
import com.martin.lib_base.ktx.loge
import com.martin.lib_base.ktx.normalToast
import dev.utils.app.ActivityUtils
import kotlinx.coroutines.flow.MutableStateFlow

class MainViewModel : BaseViewModel() {
    ///////////////////////////////////////////////////////////////////////////
    // ------------------------------ 属性区 -------------------------------- //
    ///////////////////////////////////////////////////////////////////////////

    val index = MutableStateFlow(TabIndex.INDEX_MALL)
    val preIndex = MutableStateFlow(TabIndex.INDEX_MALL)

    val fragments by lazy {
        listOf(
            MallFragment.getInstance(),
            ExchangeFragment.getInstance(),
            CourseFragment.getInstance(),
            CartFragment.getInstance(),
            MineFragment.getInstance(),
        )
    }

    // 返回按钮点击时长间隔
    var backPressTime = 0L

    ///////////////////////////////////////////////////////////////////////////
    // -------------------------------方法区 -------------------------------- //
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 点击系统返回按钮
     */
    fun onBackPressed() {
        if (backPressTime < (System.currentTimeMillis() - 1000)) {
            normalToast("再按一次退出")
            backPressTime = System.currentTimeMillis()
        } else {
            // 退出应用
            ActivityUtils.getManager().exitApplication()
        }
    }

    fun tabChange(tab: TabIndex) {
        loge("tabChange --- $tab")
        preIndex.value = index.value
        index.value = tab
    }


    companion object {

    }
}

enum class TabIndex {
    // 商城
    INDEX_MALL,

    // 兑换
    INDEX_EXCHANGE,

    // 课程
    INDEX_COURSE,

    // 购物车
    INDEX_CART,

    // 我的
    INDEX_MINE
}